TOP

LibreOffice Calc'da Google Çeviri

Tanım

LibreOffice Calc programının standart işlevselliği, metni diğer dillere çevirme işlevlerini içermez. Ancak herhangi bir kullanıcı böyle bir işlevi bağımsız olarak oluşturabilir.

Bu makalede, herhangi bir çalışma sayfasındaki bir hücredeki metni doğrudan çevirmenize olanak tanıyan özel GoogleTranslate_YouLibreCalc() işlevine bakacağız.

İşlev, metni çevirmek için siteyi kullanır "Google Çeviri" ve herhangi bir formülde hem bağımsız olarak hem de diğer standart işlevlerle birlikte kullanılabilir.



StarBASIC işlevin kodu Google Translate

Eklemek function Google Translate , menüyü aç Tools - Macros - Edit Macros... , seçme Module1 ve aşağıdaki metni modüle kopyalayın:

  1. Option VBASupport 1  
  2.   
  3. Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)  
  4.   ' moonexcel.com.ua   
  5.   Dim FCalc      As Object  
  6.   Dim WebsiteURL As String    
  7.   Dim XMLHTTP    As Object  
  8.   Dim oHTML      As Object  
  9.   Dim HTMLDoc    As HTMLDocument  
  10.   Dim ObjClass   As Object  
  11.       
  12.   FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")   
  13.   TextToTranslate =  FCalc.callFunction("ENCODEURL", Array(TextToTranslate))  
  14.     
  15.   SrcLang = LCase(SrcLang)  
  16.   TrgLang = LCase(TrgLang)  
  17.     
  18.   IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"  
  19.   IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"  
  20.     
  21.   IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"  
  22.   IF TrgLang = "zh-tw" Then TrgLang = "zh-TW"   
  23.       
  24.   WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate  
  25.       
  26.   ' API çağrısını web sunucusuna AJAX isteğini kullanarak yürütüyoruz   
  27.   Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")  
  28.    
  29.   XMLHTTP.Open "GET", WebsiteURL, False    
  30.   XMLHTTP.Send  
  31.    
  32.   ' AJAX isteğinin yanıt metnini kullanarak bir HTML belgesi oluşturuyoruz   
  33.   Set oHTML = CreateObject("HTMLFile")  
  34.   With oHTML  
  35.         .Open  
  36.         .Write XMLHTTP.responseText  
  37.         .Close  
  38.   End With  
  39.     
  40.   ' Web öğeleri kütüphanesini kullanarak HTML metnini bir nesne modeline dönüştürüyoruz Microsoft HTML Object Kütüphane   
  41.   Set HTMLDoc = oHTML    
  42.     
  43.   Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)  
  44.   If Not ObjClass Is Nothing Then  
  45.     GoogleTranslate_YouLibreCalc = ObjClass.innerText      
  46.   End If   
  47.    
  48.   ' Hafızayı serbest bırakıyoruz   
  49.   Set ObjClass = Nothing  
  50.   Set oHTML    = Nothing  
  51.   Set XMLHTTP  = Nothing    
  52. End Function  

Sonraki, kapat Macro Editor ve çalışma sayfasına geri dönün LibreOffice Calc , herhangi bir hücreyi seçin ve yeni özelliğimizi kullanın GoogleTranslate_YouLibreCalc() .

Uzantıyı kullanma

Bundan sonra bu fonksiyon LibreOffice Calc'de açılacak tüm dosyalarda mevcut olacaktır.